<template>
  <div class="goods-item">
<!--    图片-->
    <img v-lazy="showImg" alt="" @load="imgLoad" @click="itemClick" :key="showImg">
    <div class="goods-info">
<!--      商品名-->
      <p>{{goodsItem.title}}</p>
<!--      价格-->
      <span class="price">{{goodsItem.price}}</span>
<!--      收藏-->
      <span class="collect">{{goodsItem.cfav}}</span>
    </div>
  </div>
</template>

<script>
export default {
  name: "GoodsListItem",
  props: {
    goodsItem:{

      type: Object ,
      default(){
        return {}
      }

    }
  },
  computed: {
    showImg(){
      // 这里用在了两个地方，所以要做个判断(顺序不能错)
      return this.goodsItem.image || this.goodsItem.show.img
    }
  },
  methods:{
    imgLoad(){
      //这里利用路由路径来判断刷新哪一个
      //判断是否含有home字段
      //因为检测到字段会返回其位置，返回位置为 0 （因为是拼接的url），所以是false，
      // 而检测不到返回-1是true，所以加一个 ! 进行取反
      if (!this.$route.path.indexOf('/home')){
        this.$bus.$emit('homeItemImgLoad')
      }
      //判断是否为detail
      else if (!this.$route.path.indexOf('/detail')){
        this.$bus.$emit('detailItemImgLoad')
      }
      // console.log('imgLoad');
      // this.$bus.$emit('itemImgLoad')
    },
    itemClick(){
      //监听点击
      // console.log('itemClick');
      //跳转
      this.$router.push('/detail/' + this.goodsItem.iid)
    }
  }
}
</script>

<style scoped>

  .goods-item{
    position: relative;
    text-align: center;
    width: 48%;
    /*用来保证上下之间的距离*/
    padding-bottom: 40px;
  }
  .goods-item img{
    width: 100%;
    /*圆角*/
    border-radius: 9px;
  }
  .goods-info {
    font-size: 12px;
    position: absolute;
    bottom: 5px;
    left: 0;
    right: 0;
    overflow: hidden;
    text-align: center;
  }

  .goods-info p {
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
    margin-bottom: 3px;
  }

  .goods-info .price {
    color: var(--color-high-text);
    margin-right: 20px;
  }

  .goods-info .collect {
    position: relative;
  }

  .goods-info .collect::before {
    content: '';
    position: absolute;
    left: -15px;
    top: -1px;
    width: 14px;
    height: 14px;
    background: url("~assets/img/common/collect.svg") 0 0/14px 14px;
  }
</style>
